using System;

namespace WIT.Global;

/// <summary>
/// 时间帮助类
/// </summary>
public class TimeHelper
{
	/// <summary>
	/// 将本地时间转换为时间戳（millisecond），效果等同于javascript的getTime()。
	/// [时间戳：从UTC时间的1970年1月1日0时0分0秒到现在的毫秒数]
	/// </summary>
	/// <param name="datetime"></param>
	/// <returns></returns>
	public static long ConvertToTimestamp(DateTime datetime)
	{
		return Convert.ToInt64((datetime.ToUniversalTime() - Convert.ToDateTime("1970-01-01 00:00:00")).TotalMilliseconds);
	}

	/// <summary>
	/// 将时间戳转换为本地时间（millisecond）
	/// [时间戳：从UTC时间的1970年1月1日0时0分0秒到现在的毫秒数]
	/// </summary>
	/// <param name="timestamp"></param>
	/// <returns></returns>
	public static DateTime ConvertToDateTime(long timestamp)
	{
		return Convert.ToDateTime("1970-01-01 00:00:00").AddMilliseconds(timestamp).ToLocalTime();
	}

	/// <summary>
	/// 将本地时间转换为时间戳（second）
	/// </summary>
	/// <param name="datetime"></param>
	/// <returns></returns>
	public static int ConvertToTimestamp_Second(DateTime datetime)
	{
		return Convert.ToInt32((datetime.ToUniversalTime() - Convert.ToDateTime("1970-01-01 00:00:00")).TotalSeconds);
	}

	/// <summary>
	/// 将时间戳转换为本地时间（second）
	/// </summary>
	/// <param name="timestamp"></param>
	/// <returns></returns>
	public static DateTime ConvertToDateTime_Second(int timestamp)
	{
		return Convert.ToDateTime("1970-01-01 00:00:00").AddSeconds(timestamp).ToLocalTime();
	}
}
